import axios from "axios"

const request = axios.create();

const ERROR_MSG={
    ERR_NETWORK:"网络异常，请检查网络连接",
    ECONNABORTED:"请求超时,请稍后重试"
};
const HTTP_MSG={
    401:"未授权",
    404:"访问资源不存在",
    500:"服务器出现异常",
    DEFAULT:"服务器太忙了,你待会再试"
}
request.interceptors.request.use(
    function(config){
        return config;
    },
    function(error){
        // 继续保持 Promise 错误对象的返回，让后续的调用方法可以继续调用Promise语法
        return Promise.reject(error);
    }
)
request.interceptors.response.use(
    function(response){
        console.log("响应")
        // 提前处理了响应数据，让后续的axios 的成功结果直接是 后台数据
        return response.data;
    },
    function(error){
        let msg="";
        if(error.response){//有响应的情况下
            msg= HTTP_MSG[error.response.status];
        }else{
            msg=ERROR_MSG[error.code]
        }
        alert(msg)
        // 继续保持 Promise 错误对象的返回，让后续的调用方法可以继续调用Promise语法,同时在浏览器控制台提示错误[为开发者服务的]
        return Promise.reject(msg)
    }
)

export default request;